// 初始化ODrive控制器
void initializeODrive();

//发送命令到odrive
void sendODriveCommand(String command);

//设置行驶速度
void setODriveVelocity(float speed0, float speed1);

//实现向前向后走固定距离行驶
void MoveDistance(int direction, int go_time,float speed_set);

// 实现固定角度旋转
void Angle_of_rotation(int direction, int time_to_angle);

// ODrive串口配置
#define ODRIVE_BAUD_RATE 115200//波特率
#define ODRIVE_SERIAL Serial2  // 使用硬件串口2 (RX: GPIO16, TX: GPIO17)
  //初始化控制串口
#define INIT_ODRIVE_SERIAL  ODRIVE_SERIAL.begin(ODRIVE_BAUD_RATE, SERIAL_8N1, 16, 17);

#define D_FRONT 1
//方向[值:0-back 1-go]
#define D_REAR 0

#define DIST_1M_2 2670 // 2m对应时间(ms)对应速度2
#define DIST_2M_2 5340
#define DIST_3M_2 8010
#define DIST_4M_2 10680
#define DIST_5M_2 13350

#define DIST_1M_4 1335 // 2m对应时间(ms)对应速度4
#define DIST_2M_4 2670
#define DIST_3M_4 4005
#define DIST_4M_4 5340
#define DIST_5M_4 6675

//[值:right-1 left-0]
// 方向定义
#define D_RIGHT 1
#define D_LEFT 0

// 角度时间定义（示例值，需要实际测量校准）
#define Angle_30 1300    // 30度需要的时间(ms)
#define Angle_60 2600    // 60度需要的时间(ms)
#define Angle_90 3900    // 90度需要的时间(ms)
#define Angle_180 7800   // 180度需要的时间(ms)

#include "./odrivecontrol.c"
 